package com.xxx.pojo;


import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.xxx.converter.MattersConverter;
import com.xxx.enums.ExamineStatus;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 事项报备表;
 * @author : http://www.chiner.pro
 * @date : 2024-10-6
 */
@TableName("matters")
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Matters implements Serializable,Cloneable{
    /** 项目名称 */
    @ExcelProperty("项目名称")
    @ColumnWidth(20)
    private String name ;
    /** 项目编号 */
    @ExcelProperty("项目编号")
    @ColumnWidth(20)
    @TableId
    private String id ;
    /** 项目类别 */
    @ExcelProperty("项目类别")
    @ColumnWidth(20)
    private String classification ;
    /** 报备事项 */
    @ExcelProperty("报备事项")
    @ColumnWidth(20)
    private String reportingCategory ;
    /** 执行金额 */
    @ExcelProperty("执行金额")
    @ColumnWidth(20)
    private Double amount ;
    /** 决议内容 */
    @ExcelProperty("决议内容")
    @ColumnWidth(20)
    private String content ;
    /** 附件 */
    @ExcelProperty("附件")
    @ColumnWidth(20)
    private String attachments ;
    /** 执行时间 */
    @ExcelProperty("执行时间")
    @ColumnWidth(20)
    private LocalDateTime executionDate ;
    /** 合作伙伴 */
    @ExcelProperty("合作伙伴")
    @ColumnWidth(20)
    private String partners ;
    /** 用户id */
    @ExcelProperty("用户id")
    @ColumnWidth(20)
    private Long userId ;
    /** 执行人 */
    @ExcelProperty("执行人")
    @ColumnWidth(20)
    private String executor ;
    /** 操作时间 */
    @ExcelProperty("操作时间")
    @ColumnWidth(20)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime updateDatetime ;
    /** 部门 */
    @ExcelProperty("部门")
    @ColumnWidth(20)
    private String department ;
    /** 0未审核 1审核通过 2未通过审核 */
    @ExcelProperty(value = "状态(0: 未审核,1: 审核通过,2: 审核不通过)",converter = MattersConverter.class)
    @ColumnWidth(20)
    private ExamineStatus status ;

}